﻿namespace NTLib.Core.Configuration.Attributes
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;

    /// <summary>
    /// Define that the type below could be configured by the object in the file pass in parameter
    /// </summary>
    /// <seealso cref="NTLib.Core.Configuration.BaseConfigurationAttribute" />
    public class SerializedFileConfigurationAttribute : BaseConfigurationAttribute
    {
        #region Fields

        private readonly string _file;

        #endregion

        #region Ctor

        /// <summary>
        /// Initializes a new instance of the <see cref="SerializedFileConfigurationAttribute"/> class.
        /// </summary>
        /// <param name="filePath">The file path.</param>
        public SerializedFileConfigurationAttribute(string filePath)
        {
            this._file = filePath;
        }

        #endregion

        #region Methods

        /// <summary>
        /// Collects the configuration value.
        /// </summary>
        /// <param name="host"></param>
        /// <param name="context"></param>
        /// <param name="token"></param>
        /// <returns>
        /// Return the collection of value extract from the describe process
        /// </returns>
        public override ConfigurationCollection CollectConfigurationValue(Type host, object context = null, CancellationToken token = default(CancellationToken))
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}
